/**
 * 
 */
package com.arx.spell;

import com.arx.common.GlobalConsts;
import com.dalonedrau.opengl.Vector3;

/**
 * @author Donald
 */
public class SpellObject {

	private boolean	bDuration;
	/** Number of the source interactive obj (0==player). */
	private int		caster;
	private Vector3	caster_angle;
	/** Level of Magic 1-10. */
	private float	caster_level;
	private Vector3	caster_pos;
	private long	cumul;
	private boolean	exist;
	/** Specific use for each spell. */
	private float	fdata;
	private long	flags;
	private float	fManaCostPerSecond;
	private long	hand_group;
	/** Only valid if hand_group>=0. */
	private Vector3	hand_pos;

	private long	lastupdate;
	private long[]	linfo	= new long[GlobalConsts.MAX_LINFO];
	// private TextureContainer * tc;
	private long	longinfo;
	private long	longinfo2;
	private long	lSpellSource;
	private Vector3	move;
	private Vector3	scale;

	private float	siz;

	private long	snd_loop;
	// private CSpellFx pSpellFx;
	// private void * misc;
	/** Number of the target interactive obj if any. */
	private long	target;
	private Vector3	target_angle;
	private Vector3	target_pos;
	private long	timcreation;
	private long	tolive;
	private int		type;
	private Vector3	v;
	private Vector3	vector_dir;
	private Vector3	vsource;
	public boolean exists() {
		return exist;
	}

	public int getCaster() {
		return caster;
	}
	/**
	 * Gets the caster_level
	 * @return {@link float}
	 */
	public float getCaster_level() {
		return caster_level;
	}
	public long getTarget() {
		return target;
	}
	long getTolive() {
		return tolive;
	}
	public int getType() {
		return type;
	}
	void setCaster(final int val) {
		caster = val;
	}
	/**
	 * Sets the caster_level
	 * @param caster_level the caster_level to set
	 */
	public void setCaster_level(float caster_level) {
		this.caster_level = caster_level;
	}
	void setTarget(final long val) {
		target = val;
	}
	void setTolive(final long val) {
		tolive = val;
	}
}
